#!/bin/sh
# Test a command for presence and ability to output the sha1 hash of a file.
check_hashcmd() {
        which $1 &&
        $1 </dev/null 2>/dev/null |
        awk '{if ($1 != "da39a3ee5e6b4b0d3255bfef95601890afd80709") { exit 1; }}'
}

test_voice () {
        VOICE=$1
        EXPECTED=$2
        TEST_TEXT=$3
        echo "testing ${VOICE} ... "
        ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \
        src/espeak-ng --stdout -v ${VOICE} "${TEST_TEXT}" | \
        $sha1sum | awk '{ print $1 }' > actual.txt
        echo "${EXPECTED}" > expected.txt
        diff expected.txt actual.txt || exit 1
}

# Test some common commands to find the correct one for the system being tested on.
echo -n "checking for SHA1 hashing command ... "
if check_hashcmd sha1sum; then
        sha1sum=sha1sum
elif check_hashcmd sha1; then
        sha1sum=sha1
elif check_hashcmd shasum; then
        sha1sum=shasum
else
        echo "no"
        exit 1
fi

echo -n "checking if klatt is installed ... "
if [ "`which klatt`" != "" ]; then
        echo "yes"
else
        echo "no"
        exit
fi

test_voice en+klatt 83be910e5e23ea8e3ac9df6f86253b9296491367 "The quick brown fox jumps over the lazy dog"
test_voice en+klatt2 e9f31d6f515ab6d83e3c39a15b595d0732a084f9 "The quick brown fox jumps over the lazy dog"
test_voice en+klatt3 8067add512b2541132c6cc831e03ab7361a691b8 "The quick brown fox jumps over the lazy dog"
test_voice en+klatt4 15e2d269495e382315284eedfd72f91ab821f0d1 "The quick brown fox jumps over the lazy dog"


